export interface User {
  id: string;
  username: string;
  email: string;
  carbonFootprint: number;
  greenEnergy: number;
  achievements: Achievement[];
  planetState: PlanetState;
  tasks: Task[];
}

export interface PlanetState {
  pollution: number;
  biodiversity: number;
  energy: {
    clean: number;
    total: number;
  };
  buildings: Building[];
  trees: number;
  waterQuality: number;
}

export interface Building {
  id: string;
  type: 'solarPanel' | 'windTurbine' | 'recyclingCenter' | 'waterTreatment';
  level: number;
  position: {
    x: number;
    y: number;
    z: number;
  };
}

export interface TaskCriteria {
  type: 'steps' | 'energy' | 'action' | 'participation';
  target: number;
  current: number;
}

export interface TaskReward {
  greenEnergy: number;
  carbonReduction: number;
  trees?: number;
  waterQuality?: number;
}

export interface Task {
  id: string;
  title: string;
  description: string;
  type: 'daily' | 'weekly' | 'challenge' | 'community';
  reward: TaskReward;
  progress: number;
  completed: boolean;
  deadline?: Date;
  criteria: TaskCriteria;
}

export interface Achievement {
  id: string;
  title: string;
  description: string;
  icon: string;
  unlockedAt?: Date;
}

export interface CarbonActivity {
  id: string;
  category: string;
  value: number;
  date: Date;
  description: string;
}

export * from './task'; 